package android.game.tetris;

import android.content.Context;
import android.content.res.Resources;
import android.util.AttributeSet;

//class TetrisTileView được kế thừa từ class TileView
public class TetrisTileView extends TileView {
	/* Khởi tạo cơ bản về hình dạng, màu sắc của viên gạch
	 * các chức năng di chuyển qua trái, phải, lên, xuống, đảo viên gạch
	 * */
	
	//Khởi tạo màu sắc
	private int iBack = 0;
    private int iMagenta = 1;
    private int iYellow = 2;
    private int iGreen = 3;
    private int iBlue = 4;
    private int iOrange = 5;
    private int iCyan = 6;
    private int iRed  = 7;
    private int iCount = 8;
    
	    
/////////////////////////  GIAO DIỆN GAME   ///////////////////////////////////////  
    public TetrisTileView(Context context, AttributeSet attris) 
    {
        super(context, attris);
        initTetrisView();
    }
    

    private int[][] mBoard;

    //load các hình ảnh Tetris từ các file xml đã tạo sẵn trong thư mục res -> drawable
    private void loadTetrisImage()
    {
    	//thiết lập lại gạch
        resetTiles(iCount);
        
        Resources r = this.getContext().getResources();
        
        loadTile(iBack, r.getDrawable(R.drawable.tetris_back));
        loadTile(iMagenta, r.getDrawable(R.drawable.tetris_magenta));
        loadTile(iYellow, r.getDrawable(R.drawable.tetris_yellow));
        loadTile(iGreen, r.getDrawable(R.drawable.tetris_green));
        loadTile(iBlue, r.getDrawable(R.drawable.tetris_blue));
        loadTile(iOrange, r.getDrawable(R.drawable.tetris_orange));
        loadTile(iCyan, r.getDrawable(R.drawable.tetris_cyan));
        loadTile(iRed, r.getDrawable(R.drawable.tetris_red));            
    }
    
    private void initTetrisView()
    {
        int w = getWidth();
        int h = getHeight();
        
        if(w > 0 && h > 0 )
        {
        	loadTetrisImage();
            setmBoard(new int[iCot][iHang]);                   
        }
        
        return;
    }

    private int mMode = READY;
    public static final int READY = 1;
    @Override
    //phương thức thay đổi kích thước của khung
    protected void onSizeChanged(int w, int h, int oldw, int oldh) 
    {        
        super.onSizeChanged(w, h, oldw, oldh);

        if(mMode != READY) 
        { //Not Initialization
            loadTetrisImage();                    
            return;
        }
        else
        {
            initTetrisView();
        }
    }
   //////////////////////////////////////////////////////////////////////

	public int[][] getmBoard() {
		return mBoard;
	}

	public void setmBoard(int[][] mBoard) {
		this.mBoard = mBoard;
	}
        
}
